Next | Prev | Up | Top | Contents | Index
Using QuickStart
You may want to take advantage of the QuickStart optimization that minimizes start-up times for executables. You can use QuickStart when using or building DSOs. At link time, when an executable or a DSO is being created, the linker ld assigns initial addresses to the object and attempts to resolve all references. Since DSOs are relocatable, these initial address assignments are really only guesses about where the object will be really loaded. At run time, rld verifies that the DSO being used is the same one that was linked with and what the real addresses are. If the DSOs are the same and if the addresses match the initial assignments, rld doesn't have to perform any relocation work, and the application starts up very quickly (or QuickStarts). When an application QuickStarts, memory use is less since rld doesn't have to read in the information necessary to perform relocations.
To determine whether your application (or DSO) is able to do a QuickStart, use the -quickstart_info flag when building the executable (or DSO). If the application or DSO can't do a QuickStart, you'll be given information about what to do. The next section goes into more detail about why an executable may not be able to use QuickStart.
In summary, when you use DSOs to build an executable,
- link with only the DSOs that you need
- make sure that unshared libraries precede DSOs on the compile line
- use the -quickstart_info flag
Next | Prev | Up | Top | Contents | Index